home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games: Greatest Hits 1996 / Amiga Games: Greatest Hits 1996.iso / archive / userbox / publicdomain / engclock_v7.0.lha / EngClock_v7.0 / EngClock7_Source / pub.c < prev    next >
C/C++ Source or Header  |  1995-12-01  |  6KB  |  262 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V2.0
  3.  *  which is (c) Copyright 1991-1993 Jaba Development
  4.  *
  5.  *  GUI Designed by : -- Unnamed --
  6.  */
  7.  
  8. #include <exec/types.h>
  9. #include <exec/memory.h>
  10. #include <intuition/intuition.h>
  11. #include <intuition/classes.h>
  12. #include <intuition/classusr.h>
  13. #include <intuition/imageclass.h>
  14. #include <intuition/gadgetclass.h>
  15. #include <libraries/gadtools.h>
  16. #include <graphics/displayinfo.h>
  17. #include <graphics/gfxbase.h>
  18. //#include <proto/exec.h>
  19. //#include <proto/intuition.h>
  20. //#include <proto/gadtools.h>
  21. //#include <proto/graphics.h>
  22. //#include <proto/utility.h>
  23. #include <string.h>
  24. #include <stdio.h>
  25. #include <stdlib.h>
  26.  
  27. #include <clib/exec_protos.h>
  28. #include <clib/gadtools_protos.h>
  29. #include <clib/graphics_protos.h>
  30. #include <clib/utility_protos.h>
  31. #include <clib/intuition_protos.h>
  32.  
  33. extern struct IntuitionBase *IntuitionBase;
  34. extern struct GfxBase *GfxBase;
  35. extern struct Library *UtilityBase;
  36. extern struct Library *GadToolsBase;
  37. extern struct Library *DiskfontBase;
  38. extern struct Library *AslBase;
  39. extern struct Library *IFFParseBase;
  40. extern struct Library *DOSBase;
  41.  
  42. #include "pub.h"
  43. #define ENGLISH 1
  44. #define FRENCH 2
  45. #define SPANISH 3
  46.  
  47.  
  48. char *publister(void);
  49. void adaptpublanguage(void);
  50.  
  51. extern void msg(char *msg);
  52.  
  53. extern int language;
  54.  
  55. BOOL handlegadgets2(ULONG iaddress, ULONG code);
  56.  
  57. struct IntuiMessage    *msg2=NULL;
  58. char *screentitle="Public Screen List";
  59.  
  60. APTR                   VisualInfo2 = NULL;
  61. struct Window         *Project0Wnd2 = NULL;
  62. struct Gadget         *Project0GList2 = NULL;
  63. struct Gadget         *Project0Gadgets2[3];
  64. UWORD                  Project0Left2 = 140;
  65. UWORD                  Project0Top2 = 27;
  66. UWORD                  Project0Width2 = 305;
  67. UWORD                  Project0Height2 = 121;
  68. UBYTE                 *Project0Wdt2 = (UBYTE *)"EngClock Prefs";
  69.  
  70. struct TextAttr topaz82 = {
  71.     ( STRPTR )"topaz.font", 8, 0x00, 0x01 };
  72.  
  73. UWORD Project0GTypes2[] = {
  74.     LISTVIEW_KIND,
  75.     BUTTON_KIND,
  76.     BUTTON_KIND
  77. };
  78.  
  79. struct NewGadget Project0NGad2[] = {
  80.     23, 14, 252, 85, (UBYTE *)"Public Screens", NULL, GD_PubList, PLACETEXT_ABOVE, NULL, NULL,
  81.     6, 104, 85, 13, (UBYTE *)"Ok", NULL, GD_But_Ok, PLACETEXT_IN, NULL, NULL,
  82.     205, 104, 85, 13, (UBYTE *)"Cancel", NULL, GD_But_Cancel, PLACETEXT_IN, NULL, NULL
  83. };
  84.  
  85. ULONG Project0GTags2[] = {
  86.     (GTLV_ShowSelected),NULL,(TAG_DONE),
  87.     (TAG_DONE),
  88.     (TAG_DONE)
  89. };
  90.  
  91. int SetupScreen2( void )
  92. {
  93.     if ( ! ( VisualInfo2 = GetVisualInfo( pubscreen, TAG_DONE )))
  94.         return( 2L );
  95.  
  96.     return( 0L );
  97. }
  98.  
  99. void CloseDownScreen2( void )
  100. {
  101.     if ( VisualInfo2 ) {
  102.         FreeVisualInfo( VisualInfo2 );
  103.         VisualInfo2 = NULL;
  104.     }
  105.  
  106. }
  107.  
  108. int OpenProject0Window2( void )
  109. {
  110.     struct NewGadget    ng2;
  111.     struct Gadget    *g2;
  112.     UWORD        lc2, tc2;
  113.     UWORD        offx2 = pubscreen->WBorLeft, offy2 = pubscreen->WBorTop + pubscreen->RastPort.TxHeight + 1;
  114.  
  115.     if ( ! ( g2 = CreateContext( &Project0GList2 )))
  116.         return( 1L );
  117.  
  118.     for( lc2 = 0, tc2 = 0; lc2 < Project0_CNT; lc2++ ) {
  119.  
  120.         CopyMem((char * )&Project0NGad2[ lc2 ], (char * )&ng2, (long)sizeof( struct NewGadget ));
  121.  
  122.         ng2.ng_VisualInfo = VisualInfo2;
  123.         ng2.ng_TextAttr   = &topaz82;
  124.         ng2.ng_LeftEdge  += offx2;
  125.         ng2.ng_TopEdge   += offy2;
  126.  
  127.         Project0Gadgets2[ lc2 ] = g2 = CreateGadgetA((ULONG)Project0GTypes2[ lc2 ], g2, &ng2, ( struct TagItem * )&Project0GTags2[ tc2 ] );
  128.  
  129.         while( Project0GTags2[ tc2 ] ) tc2 += 2;
  130.         tc2++;
  131.  
  132.         if ( NOT g2 )
  133.             return( 2L );
  134.     }
  135.  
  136.     if ( ! ( Project0Wnd2 = OpenWindowTags( NULL,
  137.                 WA_Left,    Project0Left2,
  138.                 WA_Top,        Project0Top2,
  139.                 WA_Width,    Project0Width2,
  140.                 WA_Height,    Project0Height2 + offy2,
  141.                 WA_IDCMP,    LISTVIEWIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  142.                 WA_Flags,    WFLG_DRAGBAR|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_DEPTHGADGET|WFLG_ACTIVATE,
  143.                 WA_Gadgets,    Project0GList2,
  144.                 WA_Title,    Project0Wdt2,
  145.                 WA_ScreenTitle,    screentitle,
  146.                 WA_PubScreen,    pubscreen,
  147.                 TAG_DONE )))
  148.     return( 4L );
  149.  
  150.     GT_RefreshWindow( Project0Wnd2, NULL );
  151.  
  152.     return( 0L );
  153. }
  154.  
  155. void CloseProject0Window2( void )
  156. {
  157.     if ( Project0Wnd2        ) {
  158.         CloseWindow( Project0Wnd2 );
  159.         Project0Wnd2 = NULL;
  160.     }
  161.  
  162.     if ( Project0GList2      ) {
  163.         FreeGadgets( Project0GList2 );
  164.         Project0GList2 = NULL;
  165.     }
  166. }
  167.  
  168. char *publister(void) {
  169.     struct List *publist;
  170.     ULONG class, code, iaddress;
  171.  
  172.     current=NULL;
  173.     adaptpublanguage();
  174.     SetupScreen2();
  175.     OpenProject0Window2();
  176.     publist=LockPubScreenList();
  177.     target=AllocMem(sizeof(publist),MEMF_ANY);
  178.     CopyMem(publist,target,sizeof(publist));
  179.     UnlockPubScreenList();
  180.  
  181.     GT_SetGadgetAttrs(Project0Gadgets2[GD_PubList],Project0Wnd2,NULL,GTLV_Labels,target,TAG_DONE);
  182.     GT_RefreshWindow(Project0Wnd2,NULL);
  183.  
  184.     while(1) {
  185.         Wait(1<<Project0Wnd2->UserPort->mp_SigBit);
  186.         msg2=(struct IntuiMessage *)GT_GetIMsg(Project0Wnd2->UserPort);
  187.         class=msg2->Class; code=msg2->Code; iaddress=(ULONG)msg2->IAddress;
  188.         GT_ReplyIMsg(msg2);
  189.  
  190.         switch(class) {
  191.             case CLOSEWINDOW: 
  192.                 CloseProject0Window2();
  193.                 CloseDownScreen2();
  194.                 FreeMem(target,sizeof(target));
  195.                 return(current);
  196.              break;
  197.             case GADGETUP:
  198.             case GADGETDOWN:
  199.                 if(handlegadgets2(iaddress,code)) {
  200.                     FreeMem(target,sizeof(target));
  201.                     return(current);
  202.                 }
  203.             break;
  204.             default:
  205.                 /* Unknown (internal) msg */
  206.             break;
  207.         }        
  208.     }
  209.     
  210. }
  211.  
  212. BOOL handlegadgets2(ULONG iaddress, ULONG code) {
  213.     struct Gadget *gad;
  214.     struct Node *nd;
  215.     int i=0;
  216.  
  217.     gad=(struct Gadget *)iaddress;
  218.  
  219.     switch(gad->GadgetID) {
  220.         case GD_PubList:
  221.             nd=target->lh_Head;
  222.             for(i=0; i<code; i++) {
  223.                 nd=nd->ln_Succ;
  224.             }
  225.             current=nd->ln_Name;
  226.             return(0);
  227.         break;
  228.  
  229.         case GD_But_Cancel:
  230.             current=(char *)1234;  /* Magic returns no! */
  231.             CloseProject0Window2();
  232.             CloseDownScreen2();
  233.             return(1);
  234.         break;
  235.         case GD_But_Ok:
  236.             CloseProject0Window2();
  237.             CloseDownScreen2();
  238.             return(1);
  239.         break;
  240.  
  241.         default:
  242.             msg("Unknown gadget!");
  243.         break;
  244.     }
  245.     return(0);
  246. }
  247.  
  248. void adaptpublanguage(void) {
  249.     switch(language) {
  250.         case ENGLISH:
  251.         break;
  252.         case FRENCH:
  253.         break;
  254.         case SPANISH:
  255.             Project0NGad2[0].ng_GadgetText="Pantallas Públicas";
  256.             Project0NGad2[2].ng_GadgetText="Cancelar";
  257.             screentitle="Lista de Pantallas Públicas";
  258.  
  259.         break;
  260.     }
  261. }
  262.